package net.ufrog.common.spring.exception;

import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.View;

/**
 * @author ultrafrog, ufrog.net@gmail.com
 * @version 0.1, 2017-02-03
 * @since 0.1
 */
public interface ExceptionHandler<T extends Exception> {

    /**
     * 判断类型
     *
     * @param e 异常对象
     * @return 判断结果
     */
    Boolean isType(Exception e);

    /**
     * 处理异常
     *
     * @param e 异常对象
     * @param requestType 请求类型
     * @param errorView 异常视图
     * @param partViewSuffix 部分视图后缀
     * @param jsonView 对象视图
     * @param exceptionLogger 异常日志接口
     * @return 模型结果
     */
    ModelAndView handle(T e, String requestType, String errorView, String partViewSuffix, View jsonView, ExceptionLogger exceptionLogger);
}
